package com.station.Activitys.adapter;

import android.content.Context;
import android.graphics.Color;
import android.support.v7.widget.RecyclerView;
import android.view.View;
import android.widget.TextView;

import com.station.Activitys.R;
import com.station.Activitys.adapter.base.BaseRecyclerViewAdapter;
import com.station.Activitys.bean.MyTest;
import com.station.Activitys.utils.Constant;
import com.zhy.autolayout.utils.AutoUtils;

import java.util.List;

import butterknife.Bind;
import butterknife.ButterKnife;

/**
 * 项目名称：基站管理平台 手机app
 * 类描述：我的验收信息 适配器
 * 创建人：张飞祥
 * 创建时间：2018/8/27 17:10
 * 修改人：张飞祥
 * 修改时间：2018/8/27 17:10
 * 修改备注：
 */
public abstract class MyTestMsgAdapter extends BaseRecyclerViewAdapter {

    //上下文
    private Context mContext = null;
    //数据源
    private List<MyTest> mList = null;

    /**
     * 构造方法
     *
     * @param mContext
     * @param mContext
     * @param mList
     */
    public MyTestMsgAdapter(Context mContext, List<MyTest> mList) {
        super(mContext, mList);
        this.mContext = mContext;
        this.mList = mList;
    }

    @Override
    protected int getLayoutItemResId() {
        return R.layout.item_my_test_msg;
    }

    @Override
    public void onBindViewHolder(RecyclerView.ViewHolder viewHolder, final int position) {
        if (viewHolder instanceof WorkViewHolder) {

            //TODO 获取信息中心 viewHolder
            final WorkViewHolder holder = (WorkViewHolder) viewHolder;
            //TODO  将数据保存在itemView的Tag中，以便点击时进行获取
            holder.itemView.setTag(position);
            //获取第 i 个实体对象
            MyTest myTest = mList.get(position);
            //当前状态
            String state = myTest.getState();
            //状态控件
            TextView tvState = holder.tvItemState;

            /**
             * 设置数据源
             */
            //状态
            holder.tvItemState.setText(myTest.getState());
            //基站名称
            holder.tvItemName.setText(myTest.getNameOfOpenStationAddr());
            //省份
            holder.tvItemTime.setText(myTest.getCreateTime());
            //点击事件
            holder.tvItemDetails.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    getItemDetails(position);
                }
            });

            /**
             *  判断 当前状态 的文字颜色
             *
             *  1.未通过验收审核          红色
             *
             *  2.通过验收审核            绿色
             */
            if (state.equals(Constant.STATION_TEST_NO)){
                //红色
                tvState.setTextColor(Color.parseColor("#FF0000"));
            }else if (state.equals(Constant.STATION_TEST_YES)){
                //绿色
                tvState.setTextColor(Color.parseColor("#29cc29"));
            }
        }
    }

    /**
     * 清空全部数据
     */
    public void clearAll() {
        mList.clear();
        notifyDataSetChanged();
    }

    /**
     * 提供给外部 点击详情 事件
     */
    public abstract void getItemDetails( int position);

    @Override
    public RecyclerView.ViewHolder getViewHolder(View view) {
        return new WorkViewHolder(view);
    }

    /**
     * ViewHolder
     */
    public class WorkViewHolder extends RecyclerView.ViewHolder {

        //基站名称
        @Bind(R.id.tv_item_name) TextView tvItemName;
        //当前状态
        @Bind(R.id.tv_item_state) TextView tvItemState;
        //省份
        @Bind(R.id.tv_item_time) TextView tvItemTime;
        //详情信息
        @Bind(R.id.tv_item_details) TextView tvItemDetails;

        public WorkViewHolder(View itemView) {
            super(itemView);
            //初始化 控件绑定
            ButterKnife.bind(this, itemView);
            //初始化 屏幕适配
            AutoUtils.autoSize(itemView);
        }
    }
}
